/**********************************************************************************************************
** 驱动文件：	battery-RZY_BM00MC.c
** 驱动类型：	battery
** 设备名称：	蓄电池组
** 设备型号：	RZY_BM00MC
** 设备品牌：	融智云
** 设备协议：	Modbus
** 驱动描述：	蓄电池组总电压和电流
** 生成日期：	2019-02-20 22:57:13
**********************************************************************************************************/
#include "Includes.h"


/**********************************************************************************************************
* 定义设备数据点变量结构
**********************************************************************************************************/
typedef struct{
	Var temperature;							//总电压
	Var voltage;								//总电流
	Var ambientTemperature;						//环境温度
	Var batteryStatus;							//电池组状态
	Var batteryWarn;							//电池组告警
}Data_Struct;									//定义变量结构


/**********************************************************************************************************
* 设备数据点变量属性声明
**********************************************************************************************************/
const static Var_Property_Def var_attr[] = {
	{
		FLOAT,
		0,
		READONLY,
		"temperature",
		"总电压",
		"V",
		"电池组总电压",
		0,
		0,
		"电池组总电压过低",
		"电池组总电压过高",
		0.000,
		0.000
	},
	{
		FLOAT,
		0,
		READONLY,
		"voltage",
		"总电流",
		"A",
		"电池组总电流",
		0,
		0,
		"电池组总电流过高",
		"电池组总电流过低",
		0.000,
		0.000
	},
	{
		FLOAT,
		0,
		READONLY,
		"ambientTemperature",
		"环境温度",
		"℃",
		"环境温度",
		0,
		0,
		"环境温度过高",
		"环境温度过高",
		0.000,
		0.000
	},
	{
		OCTSTR,
		0,
		READONLY,
		"batteryStatus",
		"电池组状态",
		"",
		"电池组状态",
		0,
		0,
		"",
		"",
		0.000,
		0.000
	},
	{
		OCTSTR,
		0,
		READONLY,
		"batteryWarn",
		"电池组告警",
		"",
		"电池组告警",
		0,
		0,
		"",
		"",
		0.000,
		0.000
	}
};


/**********************************************************************************************************
* 函数名称： static void cmd_fun(short index, int addr, void *data, char *cmd, short *len)
* 函数说明： 生成获取传感器数据指令
* 输入参数： 指令索引，传感器地址，变量结构体指针,以及指令缓存区指针,指令长度
* 返回参数： 无
**********************************************************************************************************/
static void cmd_fun(short index, int addr, void *data, char *cmd, short *len)
{
	switch(index)
	{
		case 0:
			
			break;
		case 1:
			
			break;
		default:
			break;
	}
}


/**********************************************************************************************************
* 函数名称： static int parse_fun(short index, int addr, void *data, char *buf, short len)
* 函数说明： 解析传感器响应的数据，并写入数据库
* 输入参数： 解析索引,传感器地址，变量结构体指针，以及响应数据缓存取指针，响应数据长度
* 返回参数： 返回解析结果，返回0成功，返回1失败
**********************************************************************************************************/
static int parse_fun(short index, int addr, void *data, char *buf, short len)
{
	Data_Struct	*d = (Data_Struct*)data;

	if(buf!=NULL && len>0 )
	{
		switch(index)
		{
			case 0:
				
				break;
			case 1:
				
				break;
			default:
				break;
		}
		return 0;
	}
	return 1;
}


/**********************************************************************************************************
* 函数名称： void battery_RZY_BM00MC_Registration(void)
* 函数说明： 蓄电池组驱动注册
* 输入参数： 无
* 返回参数： 无
**********************************************************************************************************/
void battery_RZY_BM00MC_Registration(void)
{
	DeviceRegWithResTimeout(
		"battery",												//设备类型
		"蓄电池组",												//设备名称（导航栏默认显示名称）
		"RZY_BM00MC",											//设备型号
		"蓄电池组总电压和电流",									//驱动描述
		var_attr,												//变量属性声明
		sizeof(Data_Struct),									//变量结构体空间大小
		cmd_fun,												//发送指令生成函数
		parse_fun,												//数据解析函数
		250														//设备响应超时时间
	);
}

